{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# COMPSCI 389: Introduction to Machine Learning\n", "Data Cleaning Introduction\n", "\n", "The code below runs gradient descent to minimize the sample mean squared error when using a linear parametric model, with the second-degree (order) polynomial basis. The first code block defines the various functions for this. I recommend skipping down to the next markdown block." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "ename": "FileNotFoundError", "evalue": "[Errno 2] No such file or directory: 'data/GPA.csv'", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", "Cell \u001b[1;32mIn[1], line 61\u001b[0m\n\u001b[0;32m 58\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m X_poly\u001b[38;5;241m.\u001b[39mdot(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mweights)\n\u001b[0;32m 60\u001b[0m \u001b[38;5;66;03m# Load the data set\u001b[39;00m\n\u001b[1;32m---> 61\u001b[0m df \u001b[38;5;241m=\u001b[39m \u001b[43mpd\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mread_csv\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mdata/GPA.csv\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdelimiter\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43m,\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[0;32m 63\u001b[0m \u001b[38;5;66;03m# Split the data into features and labels\u001b[39;00m\n\u001b[0;32m 64\u001b[0m X \u001b[38;5;241m=\u001b[39m df\u001b[38;5;241m.\u001b[39miloc[:, :\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m]\n", "File \u001b[1;32mc:\\Users\\pthomas\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\pandas\\io\\parsers\\readers.py:948\u001b[0m, in \u001b[0;36mread_csv\u001b[1;34m(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, date_format, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, encoding_errors, dialect, on_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options, dtype_backend)\u001b[0m\n\u001b[0;32m 935\u001b[0m kwds_defaults \u001b[38;5;241m=\u001b[39m _refine_defaults_read(\n\u001b[0;32m 936\u001b[0m dialect,\n\u001b[0;32m 937\u001b[0m delimiter,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 944\u001b[0m dtype_backend\u001b[38;5;241m=\u001b[39mdtype_backend,\n\u001b[0;32m 945\u001b[0m )\n\u001b[0;32m 946\u001b[0m kwds\u001b[38;5;241m.\u001b[39mupdate(kwds_defaults)\n\u001b[1;32m--> 948\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_read\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfilepath_or_buffer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkwds\u001b[49m\u001b[43m)\u001b[49m\n", "File \u001b[1;32mc:\\Users\\pthomas\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\pandas\\io\\parsers\\readers.py:611\u001b[0m, in \u001b[0;36m_read\u001b[1;34m(filepath_or_buffer, kwds)\u001b[0m\n\u001b[0;32m 608\u001b[0m _validate_names(kwds\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mnames\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m))\n\u001b[0;32m 610\u001b[0m \u001b[38;5;66;03m# Create the parser.\u001b[39;00m\n\u001b[1;32m--> 611\u001b[0m parser \u001b[38;5;241m=\u001b[39m \u001b[43mTextFileReader\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfilepath_or_buffer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwds\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 613\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m chunksize \u001b[38;5;129;01mor\u001b[39;00m iterator:\n\u001b[0;32m 614\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m parser\n", "File \u001b[1;32mc:\\Users\\pthomas\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\pandas\\io\\parsers\\readers.py:1448\u001b[0m, in \u001b[0;36mTextFileReader.__init__\u001b[1;34m(self, f, engine, **kwds)\u001b[0m\n\u001b[0;32m 1445\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhas_index_names\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m kwds[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhas_index_names\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[0;32m 1447\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles: IOHandles \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m-> 1448\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_engine \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_make_engine\u001b[49m\u001b[43m(\u001b[49m\u001b[43mf\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mengine\u001b[49m\u001b[43m)\u001b[49m\n", "File \u001b[1;32mc:\\Users\\pthomas\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\pandas\\io\\parsers\\readers.py:1705\u001b[0m, in \u001b[0;36mTextFileReader._make_engine\u001b[1;34m(self, f, engine)\u001b[0m\n\u001b[0;32m 1703\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m mode:\n\u001b[0;32m 1704\u001b[0m mode \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m-> 1705\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles \u001b[38;5;241m=\u001b[39m \u001b[43mget_handle\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 1706\u001b[0m \u001b[43m \u001b[49m\u001b[43mf\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1707\u001b[0m \u001b[43m \u001b[49m\u001b[43mmode\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1708\u001b[0m \u001b[43m \u001b[49m\u001b[43mencoding\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mencoding\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1709\u001b[0m \u001b[43m \u001b[49m\u001b[43mcompression\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mcompression\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1710\u001b[0m \u001b[43m \u001b[49m\u001b[43mmemory_map\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mmemory_map\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1711\u001b[0m \u001b[43m \u001b[49m\u001b[43mis_text\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mis_text\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1712\u001b[0m \u001b[43m \u001b[49m\u001b[43merrors\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mencoding_errors\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mstrict\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1713\u001b[0m \u001b[43m \u001b[49m\u001b[43mstorage_options\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mstorage_options\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1714\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1715\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m 1716\u001b[0m f \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles\u001b[38;5;241m.\u001b[39mhandle\n", "File \u001b[1;32mc:\\Users\\pthomas\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\pandas\\io\\common.py:863\u001b[0m, in \u001b[0;36mget_handle\u001b[1;34m(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)\u001b[0m\n\u001b[0;32m 858\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(handle, \u001b[38;5;28mstr\u001b[39m):\n\u001b[0;32m 859\u001b[0m \u001b[38;5;66;03m# Check whether the filename is to be opened in binary mode.\u001b[39;00m\n\u001b[0;32m 860\u001b[0m \u001b[38;5;66;03m# Binary mode does not support 'encoding' and 'newline'.\u001b[39;00m\n\u001b[0;32m 861\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m ioargs\u001b[38;5;241m.\u001b[39mencoding \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m ioargs\u001b[38;5;241m.\u001b[39mmode:\n\u001b[0;32m 862\u001b[0m \u001b[38;5;66;03m# Encoding\u001b[39;00m\n\u001b[1;32m--> 863\u001b[0m handle \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mopen\u001b[39;49m\u001b[43m(\u001b[49m\n\u001b[0;32m 864\u001b[0m \u001b[43m \u001b[49m\u001b[43mhandle\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 865\u001b[0m \u001b[43m \u001b[49m\u001b[43mioargs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmode\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 866\u001b[0m \u001b[43m \u001b[49m\u001b[43mencoding\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mioargs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mencoding\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 867\u001b[0m \u001b[43m \u001b[49m\u001b[43merrors\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43merrors\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 868\u001b[0m \u001b[43m \u001b[49m\u001b[43mnewline\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 869\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 870\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 871\u001b[0m \u001b[38;5;66;03m# Binary mode\u001b[39;00m\n\u001b[0;32m 872\u001b[0m handle \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mopen\u001b[39m(handle, ioargs\u001b[38;5;241m.\u001b[39mmode)\n", "\u001b[1;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'data/GPA.csv'" ] } ], "source": [ "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "from sklearn.base import BaseEstimator\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.preprocessing import PolynomialFeatures\n", "\n", "# Function to calculate mean squared error (for evaluation)\n", "def mean_squared_error(predictions, labels):\n", " return np.mean((predictions - labels) ** 2)\n", "\n", "# Function to calculate gradients\n", "def compute_gradients(X, y, weights):\n", " predictions = X.dot(weights)\n", " errors = predictions - y\n", " return 2 / X.shape[0] * X.T.dot(errors)\n", "\n", "class PolynomialRegressionGD(BaseEstimator):\n", " def __init__(self, learning_rate, iterations=1000, polynomial_degree=2):\n", " self.learning_rate = learning_rate\n", " self.iterations = iterations\n", " self.polynomial_degree = polynomial_degree\n", "\n", " def fit(self, X, y):\n", " # Expand features into polynomial basis and store the transformer\n", " self.poly = PolynomialFeatures(degree=self.polynomial_degree)\n", " X_poly = self.poly.fit_transform(X) # X_poly now holds the phi(X) - the features for each input\n", "\n", " # Get the number of features\n", " numFeatures = X_poly.shape[1];\n", "\n", " # Initialize weights and loss history\n", " self.weights = np.zeros(numFeatures)\n", " self.loss_history = []\n", "\n", " # Print the initial loss\n", " predictions = X_poly.dot(self.weights)\n", " loss = mean_squared_error(predictions, y)\n", " print(f\"Iteration 0/{self.iterations}, Loss: {loss:.4f}\")\n", "\n", " for i in range(1, self.iterations + 1):\n", " # Compute the gradient of the loss function\n", " gradients = compute_gradients(X_poly, y, self.weights)\n", "\n", " # Update the weights using gradient descent\n", " self.weights -= self.learning_rate * gradients\n", "\n", " # Compute, print, and store the resulting loss (just to print it - not needed for the actual optimization)\n", " loss = mean_squared_error(X_poly.dot(self.weights), y)\n", " self.loss_history.append(loss)\n", " print(f\"Iteration {i}/{self.iterations}, Loss: {loss:.4f}\")\n", "\n", " return self\n", "\n", " def predict(self, X):\n", " # Use the stored polynomial transformer to transform X\n", " X_poly = self.poly.transform(X)\n", " return X_poly.dot(self.weights)\n", "\n", "# Load the data set\n", "df = pd.read_csv(\"data/GPA.csv\", delimiter=',')\n", "\n", "# Split the data into features and labels\n", "X = df.iloc[:, :-1]\n", "y = df.iloc[:, -1]\n", "\n", "# Split the data into training and testing sets\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4, shuffle=True)\n", "\n", "def run(alpha):\n", " iterations = 1000\n", " polynomial_degree = 2\n", "\n", " # Initialize and fit the model\n", " model = PolynomialRegressionGD(\n", " learning_rate=alpha,\n", " iterations=iterations,\n", " polynomial_degree=polynomial_degree\n", " )\n", " model.fit(X_train, y_train)\n", "\n", " # Plotting the loss over iterations\n", " plt.plot(range(1, iterations + 1), model.loss_history)\n", " plt.xlabel('Iterations')\n", " plt.ylabel('Mean Squared Error')\n", " plt.yscale('log')\n", " plt.title(f'Gradient Descent Loss, Polynomial Degree: {polynomial_degree}')\n", " plt.show()\n", "\n", " # Predict on the test set\n", " predictions = model.predict(X_test)\n", "\n", " # Calculate MSE on the test set\n", " mse_test = mean_squared_error(predictions, y_test)\n", " print(f\"Test MSE: {mse_test:.4f}\")\n", "\n", " # Calculate the standard error of the MSE\n", " squared_errors = (predictions - y_test) ** 2\n", " std_error = np.std(squared_errors) / np.sqrt(len(squared_errors))\n", " print(f\"Standard Error of MSE: {std_error:.4f}\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `run` function takes the step size (learning rate) `alpha` as its one argument. It then runs 1,000 iterations of gradient descent on the GPA data set using the second-degree polynomial basis. Let's recreate the plot from the last lecture!\n", "\n", "(Note: nan and inf can cause some errors, so don't worry if you see some errors below.)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Iteration 0/1000, Loss: 8.4292\n", "Iteration 1/1000, Loss: 8699896084662712010801152.0000\n", "Iteration 2/1000, Loss: 9927913236260449382623519869853028519575178706944.0000\n", "Iteration 3/1000, Loss: 11329280668531715668446261968916915601861795744246812403193416257130987520.0000\n", "Iteration 4/1000, Loss: 12928457111081828069683890035613448549819036535784470427398402767141167226351588060354875706310656.0000\n", "Iteration 5/1000, Loss: 14753364151119199753114205040137636889869226880692379199057992888268351069036067823003692500014127297279929631793028792320.0000\n", "Iteration 6/1000, Loss: 16835864628344307272589475773604450362611855240535958011321867455436839348556665472275716145363445910094398902967598946778284926697114636172394496.0000\n", "Iteration 7/1000, Loss: 19212318958617501406591063372808495341392062396435145613797854227420322806597646929659828012963872468477382061532310091188202202126624261065043257210910732416153787826176.0000\n", "Iteration 8/1000, Loss: 21924219986078206316033759377513131626321983432378607658212512619515010833788985318819993828904830801169763497498824484573215680322126281520556518549479126701460495218980136701900218190518026240.0000\n", "Iteration 9/1000, Loss: 25018917447357411741495856039182586203343647203338318048058162233993271086158640033619751560334989327959633143179799357393224819842123109527759326949202775477470457625922748690925197842707042464543574784419249885544448.0000\n", "Iteration 10/1000, Loss: 28550444697013563063158446431404544850008915742346203716134373789729770876245727006471953357017801582943215948816202732278107820924076436470393324745305388348632127798811943128913463266048306131873584443778882999269087400835806494407155253248.0000\n", "Iteration 11/1000, Loss: 32580462128801106506532904440020481582540835077254054956084331545707156071637091116167885456381628241516233782458952827504071431379420958082140629681152826888389958252296799667817084954244595016038827505894322916051031426710805552661585905128477115980101766264913920.0000\n", "Iteration 12/1000, Loss: 37179333764887996848856961436357350718550588785015790345340088745954796871659196751461971271844123608865845000869909953538147296333470341285062306217789865234525453461118561840688576249575252386192022293869909324717402209601747147501175507351029688400280321974631457487383131678819521396736.0000\n", "Iteration 13/1000, Loss: inf\n", "Iteration 14/1000, Loss: inf\n", "Iteration 15/1000, Loss: inf\n", "Iteration 16/1000, Loss: inf\n", "Iteration 17/1000, Loss: inf\n", "Iteration 18/1000, Loss: inf\n", "Iteration 19/1000, Loss: inf\n", "Iteration 20/1000, Loss: inf\n", "Iteration 21/1000, Loss: inf\n", "Iteration 22/1000, Loss: inf\n", "Iteration 23/1000, Loss: inf\n", "Iteration 24/1000, Loss: inf\n", "Iteration 25/1000, Loss: inf\n", "Iteration 26/1000, Loss: inf\n", "Iteration 27/1000, Loss: nan\n", "Iteration 28/1000, Loss: nan\n", "Iteration 29/1000, Loss: nan\n", "Iteration 30/1000, Loss: nan\n", "Iteration 31/1000, Loss: nan\n", "Iteration 32/1000, Loss: nan\n", "Iteration 33/1000, Loss: nan\n", "Iteration 34/1000, Loss: nan\n", "Iteration 35/1000, Loss: nan\n", "Iteration 36/1000, Loss: nan\n", "Iteration 37/1000, Loss: nan\n", "Iteration 38/1000, Loss: nan\n", "Iteration 39/1000, Loss: nan\n", "Iteration 40/1000, Loss: nan\n", "Iteration 41/1000, Loss: nan\n", "Iteration 42/1000, Loss: nan\n", "Iteration 43/1000, Loss: nan\n", "Iteration 44/1000, Loss: nan\n", "Iteration 45/1000, Loss: nan\n", "Iteration 46/1000, Loss: nan\n", "Iteration 47/1000, Loss: nan\n", "Iteration 48/1000, Loss: nan\n", "Iteration 49/1000, Loss: nan\n", "Iteration 50/1000, Loss: nan\n", "Iteration 51/1000, Loss: nan\n", "Iteration 52/1000, Loss: nan\n", "Iteration 53/1000, Loss: nan\n", "Iteration 54/1000, Loss: nan\n", "Iteration 55/1000, Loss: nan\n", "Iteration 56/1000, Loss: nan\n", "Iteration 57/1000, Loss: nan\n", "Iteration 58/1000, Loss: nan\n", "Iteration 59/1000, Loss: nan\n", "Iteration 60/1000, Loss: nan\n", "Iteration 61/1000, Loss: nan\n", "Iteration 62/1000, Loss: nan\n", "Iteration 63/1000, Loss: nan\n", "Iteration 64/1000, Loss: nan\n", "Iteration 65/1000, Loss: nan\n", "Iteration 66/1000, Loss: nan\n", "Iteration 67/1000, Loss: nan\n", "Iteration 68/1000, Loss: nan\n", "Iteration 69/1000, Loss: nan\n", "Iteration 70/1000, Loss: nan\n", "Iteration 71/1000, Loss: nan\n", "Iteration 72/1000, Loss: nan\n", "Iteration 73/1000, Loss: nan\n", "Iteration 74/1000, Loss: nan\n", "Iteration 75/1000, Loss: nan\n", "Iteration 76/1000, Loss: nan\n", "Iteration 77/1000, Loss: nan\n", "Iteration 78/1000, Loss: nan\n", "Iteration 79/1000, Loss: nan\n", "Iteration 80/1000, Loss: nan\n", "Iteration 81/1000, Loss: nan\n", "Iteration 82/1000, Loss: nan\n", "Iteration 83/1000, Loss: nan\n", "Iteration 84/1000, Loss: nan\n", "Iteration 85/1000, Loss: nan\n", "Iteration 86/1000, Loss: nan\n", "Iteration 87/1000, Loss: nan\n", "Iteration 88/1000, Loss: nan\n", "Iteration 89/1000, Loss: nan\n", "Iteration 90/1000, Loss: nan\n", "Iteration 91/1000, Loss: nan\n", "Iteration 92/1000, Loss: nan\n", "Iteration 93/1000, Loss: nan\n", "Iteration 94/1000, Loss: nan\n", "Iteration 95/1000, Loss: nan\n", "Iteration 96/1000, Loss: nan\n", "Iteration 97/1000, Loss: nan\n", "Iteration 98/1000, Loss: nan\n", "Iteration 99/1000, Loss: nan\n", "Iteration 100/1000, Loss: nan\n", "Iteration 101/1000, Loss: nan\n", "Iteration 102/1000, Loss: nan\n", "Iteration 103/1000, Loss: nan\n", "Iteration 104/1000, Loss: nan\n", "Iteration 105/1000, Loss: nan\n", "Iteration 106/1000, Loss: nan\n", "Iteration 107/1000, Loss: nan\n", "Iteration 108/1000, Loss: nan\n", "Iteration 109/1000, Loss: nan\n", "Iteration 110/1000, Loss: nan\n", "Iteration 111/1000, Loss: nan\n", "Iteration 112/1000, Loss: nan\n", "Iteration 113/1000, Loss: nan\n", "Iteration 114/1000, Loss: nan\n", "Iteration 115/1000, Loss: nan\n", "Iteration 116/1000, Loss: nan\n", "Iteration 117/1000, Loss: nan\n", "Iteration 118/1000, Loss: nan\n", "Iteration 119/1000, Loss: nan\n", "Iteration 120/1000, Loss: nan\n", "Iteration 121/1000, Loss: nan\n", "Iteration 122/1000, Loss: nan\n", "Iteration 123/1000, Loss: nan\n", "Iteration 124/1000, Loss: nan\n", "Iteration 125/1000, Loss: nan\n", "Iteration 126/1000, Loss: nan\n", "Iteration 127/1000, Loss: nan\n", "Iteration 128/1000, Loss: nan\n", "Iteration 129/1000, Loss: nan\n", "Iteration 130/1000, Loss: nan\n", "Iteration 131/1000, Loss: nan\n", "Iteration 132/1000, Loss: nan\n", "Iteration 133/1000, Loss: nan\n", "Iteration 134/1000, Loss: nan\n", "Iteration 135/1000, Loss: nan\n", "Iteration 136/1000, Loss: nan\n", "Iteration 137/1000, Loss: nan\n", "Iteration 138/1000, Loss: nan\n", "Iteration 139/1000, Loss: nan\n", "Iteration 140/1000, Loss: nan\n", "Iteration 141/1000, Loss: nan\n", "Iteration 142/1000, Loss: nan\n", "Iteration 143/1000, Loss: nan\n", "Iteration 144/1000, Loss: nan\n", "Iteration 145/1000, Loss: nan\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\pthomas\\AppData\\Local\\Temp\\ipykernel_20592\\2681979827.py:46: RuntimeWarning: invalid value encountered in subtract\n", " self.weights -= self.learning_rate * gradients\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Iteration 146/1000, Loss: nan\n", "Iteration 147/1000, Loss: nan\n", "Iteration 148/1000, Loss: nan\n", "Iteration 149/1000, Loss: nan\n", "Iteration 150/1000, Loss: nan\n", "Iteration 151/1000, Loss: nan\n", "Iteration 152/1000, Loss: nan\n", "Iteration 153/1000, Loss: nan\n", "Iteration 154/1000, Loss: nan\n", "Iteration 155/1000, Loss: nan\n", "Iteration 156/1000, Loss: nan\n", "Iteration 157/1000, Loss: nan\n", "Iteration 158/1000, Loss: nan\n", "Iteration 159/1000, Loss: nan\n", "Iteration 160/1000, Loss: nan\n", "Iteration 161/1000, Loss: nan\n", "Iteration 162/1000, Loss: nan\n", "Iteration 163/1000, Loss: nan\n", "Iteration 164/1000, Loss: nan\n", "Iteration 165/1000, Loss: nan\n", "Iteration 166/1000, Loss: nan\n", "Iteration 167/1000, Loss: nan\n", "Iteration 168/1000, Loss: nan\n", "Iteration 169/1000, Loss: nan\n", "Iteration 170/1000, Loss: nan\n", "Iteration 171/1000, Loss: nan\n", "Iteration 172/1000, Loss: nan\n", "Iteration 173/1000, Loss: nan\n", "Iteration 174/1000, Loss: nan\n", "Iteration 175/1000, Loss: nan\n", "Iteration 176/1000, Loss: nan\n", "Iteration 177/1000, Loss: nan\n", "Iteration 178/1000, Loss: nan\n", "Iteration 179/1000, Loss: nan\n", "Iteration 180/1000, Loss: nan\n", "Iteration 181/1000, Loss: nan\n", "Iteration 182/1000, Loss: nan\n", "Iteration 183/1000, Loss: nan\n", "Iteration 184/1000, Loss: nan\n", "Iteration 185/1000, Loss: nan\n", "Iteration 186/1000, Loss: nan\n", "Iteration 187/1000, Loss: nan\n", "Iteration 188/1000, Loss: nan\n", "Iteration 189/1000, Loss: nan\n", "Iteration 190/1000, Loss: nan\n", "Iteration 191/1000, Loss: nan\n", "Iteration 192/1000, Loss: nan\n", "Iteration 193/1000, Loss: nan\n", "Iteration 194/1000, Loss: nan\n", "Iteration 195/1000, Loss: nan\n", "Iteration 196/1000, Loss: nan\n", "Iteration 197/1000, Loss: nan\n", "Iteration 198/1000, Loss: nan\n", "Iteration 199/1000, Loss: nan\n", "Iteration 200/1000, Loss: nan\n", "Iteration 201/1000, Loss: nan\n", "Iteration 202/1000, Loss: nan\n", "Iteration 203/1000, Loss: nan\n", "Iteration 204/1000, Loss: nan\n", "Iteration 205/1000, Loss: nan\n", "Iteration 206/1000, Loss: nan\n", "Iteration 207/1000, Loss: nan\n", "Iteration 208/1000, Loss: nan\n", "Iteration 209/1000, Loss: nan\n", "Iteration 210/1000, Loss: nan\n", "Iteration 211/1000, Loss: nan\n", "Iteration 212/1000, Loss: nan\n", "Iteration 213/1000, Loss: nan\n", "Iteration 214/1000, Loss: nan\n", "Iteration 215/1000, Loss: nan\n", "Iteration 216/1000, Loss: nan\n", "Iteration 217/1000, Loss: nan\n", "Iteration 218/1000, Loss: nan\n", "Iteration 219/1000, Loss: nan\n", "Iteration 220/1000, Loss: nan\n", "Iteration 221/1000, Loss: nan\n", "Iteration 222/1000, Loss: nan\n", "Iteration 223/1000, Loss: nan\n", "Iteration 224/1000, Loss: nan\n", "Iteration 225/1000, Loss: nan\n", "Iteration 226/1000, Loss: nan\n", "Iteration 227/1000, Loss: nan\n", "Iteration 228/1000, Loss: nan\n", "Iteration 229/1000, Loss: nan\n", "Iteration 230/1000, Loss: nan\n", "Iteration 231/1000, Loss: nan\n", "Iteration 232/1000, Loss: nan\n", "Iteration 233/1000, Loss: nan\n", "Iteration 234/1000, Loss: nan\n", "Iteration 235/1000, Loss: nan\n", "Iteration 236/1000, Loss: nan\n", "Iteration 237/1000, Loss: nan\n", "Iteration 238/1000, Loss: nan\n", "Iteration 239/1000, Loss: nan\n", "Iteration 240/1000, Loss: nan\n", "Iteration 241/1000, Loss: nan\n", "Iteration 242/1000, Loss: nan\n", "Iteration 243/1000, Loss: nan\n", "Iteration 244/1000, Loss: nan\n", "Iteration 245/1000, Loss: nan\n", "Iteration 246/1000, Loss: nan\n", "Iteration 247/1000, Loss: nan\n", "Iteration 248/1000, Loss: nan\n", "Iteration 249/1000, Loss: nan\n", "Iteration 250/1000, Loss: nan\n", "Iteration 251/1000, Loss: nan\n", "Iteration 252/1000, Loss: nan\n", "Iteration 253/1000, Loss: nan\n", "Iteration 254/1000, Loss: nan\n", "Iteration 255/1000, Loss: nan\n", "Iteration 256/1000, Loss: nan\n", "Iteration 257/1000, Loss: nan\n", "Iteration 258/1000, Loss: nan\n", "Iteration 259/1000, Loss: nan\n", "Iteration 260/1000, Loss: nan\n", "Iteration 261/1000, Loss: nan\n", "Iteration 262/1000, Loss: nan\n", "Iteration 263/1000, Loss: nan\n", "Iteration 264/1000, Loss: nan\n", "Iteration 265/1000, Loss: nan\n", "Iteration 266/1000, Loss: nan\n", "Iteration 267/1000, Loss: nan\n", "Iteration 268/1000, Loss: nan\n", "Iteration 269/1000, Loss: nan\n", "Iteration 270/1000, Loss: nan\n", "Iteration 271/1000, Loss: nan\n", "Iteration 272/1000, Loss: nan\n", "Iteration 273/1000, Loss: nan\n", "Iteration 274/1000, Loss: nan\n", "Iteration 275/1000, Loss: nan\n", "Iteration 276/1000, Loss: nan\n", "Iteration 277/1000, Loss: nan\n", "Iteration 278/1000, Loss: nan\n", "Iteration 279/1000, Loss: nan\n", "Iteration 280/1000, Loss: nan\n", "Iteration 281/1000, Loss: nan\n", "Iteration 282/1000, Loss: nan\n", "Iteration 283/1000, Loss: nan\n", "Iteration 284/1000, Loss: nan\n", "Iteration 285/1000, Loss: nan\n", "Iteration 286/1000, Loss: nan\n", "Iteration 287/1000, Loss: nan\n", "Iteration 288/1000, Loss: nan\n", "Iteration 289/1000, Loss: nan\n", "Iteration 290/1000, Loss: nan\n", "Iteration 291/1000, Loss: nan\n", "Iteration 292/1000, Loss: nan\n", "Iteration 293/1000, Loss: nan\n", "Iteration 294/1000, Loss: nan\n", "Iteration 295/1000, Loss: nan\n", "Iteration 296/1000, Loss: nan\n", "Iteration 297/1000, Loss: nan\n", "Iteration 298/1000, Loss: nan\n", "Iteration 299/1000, Loss: nan\n", "Iteration 300/1000, Loss: nan\n", "Iteration 301/1000, Loss: nan\n", "Iteration 302/1000, Loss: nan\n", "Iteration 303/1000, Loss: nan\n", "Iteration 304/1000, Loss: nan\n", "Iteration 305/1000, Loss: nan\n", "Iteration 306/1000, Loss: nan\n", "Iteration 307/1000, Loss: nan\n", "Iteration 308/1000, Loss: nan\n", "Iteration 309/1000, Loss: nan\n", "Iteration 310/1000, Loss: nan\n", "Iteration 311/1000, Loss: nan\n", "Iteration 312/1000, Loss: nan\n", "Iteration 313/1000, Loss: nan\n", "Iteration 314/1000, Loss: nan\n", "Iteration 315/1000, Loss: nan\n", "Iteration 316/1000, Loss: nan\n", "Iteration 317/1000, Loss: nan\n", "Iteration 318/1000, Loss: nan\n", "Iteration 319/1000, Loss: nan\n", "Iteration 320/1000, Loss: nan\n", "Iteration 321/1000, Loss: nan\n", "Iteration 322/1000, Loss: nan\n", "Iteration 323/1000, Loss: nan\n", "Iteration 324/1000, Loss: nan\n", "Iteration 325/1000, Loss: nan\n", "Iteration 326/1000, Loss: nan\n", "Iteration 327/1000, Loss: nan\n", "Iteration 328/1000, Loss: nan\n", "Iteration 329/1000, Loss: nan\n", "Iteration 330/1000, Loss: nan\n", "Iteration 331/1000, Loss: nan\n", "Iteration 332/1000, Loss: nan\n", "Iteration 333/1000, Loss: nan\n", "Iteration 334/1000, Loss: nan\n", "Iteration 335/1000, Loss: nan\n", "Iteration 336/1000, Loss: nan\n", "Iteration 337/1000, Loss: nan\n", "Iteration 338/1000, Loss: nan\n", "Iteration 339/1000, Loss: nan\n", "Iteration 340/1000, Loss: nan\n", "Iteration 341/1000, Loss: nan\n", "Iteration 342/1000, Loss: nan\n", "Iteration 343/1000, Loss: nan\n", "Iteration 344/1000, Loss: nan\n", "Iteration 345/1000, Loss: nan\n", "Iteration 346/1000, Loss: nan\n", "Iteration 347/1000, Loss: nan\n", "Iteration 348/1000, Loss: nan\n", "Iteration 349/1000, Loss: nan\n", "Iteration 350/1000, Loss: nan\n", "Iteration 351/1000, Loss: nan\n", "Iteration 352/1000, Loss: nan\n", "Iteration 353/1000, Loss: nan\n", "Iteration 354/1000, Loss: nan\n", "Iteration 355/1000, Loss: nan\n", "Iteration 356/1000, Loss: nan\n", "Iteration 357/1000, Loss: nan\n", "Iteration 358/1000, Loss: nan\n", "Iteration 359/1000, Loss: nan\n", "Iteration 360/1000, Loss: nan\n", "Iteration 361/1000, Loss: nan\n", "Iteration 362/1000, Loss: nan\n", "Iteration 363/1000, Loss: nan\n", "Iteration 364/1000, Loss: nan\n", "Iteration 365/1000, Loss: nan\n", "Iteration 366/1000, Loss: nan\n", "Iteration 367/1000, Loss: nan\n", "Iteration 368/1000, Loss: nan\n", "Iteration 369/1000, Loss: nan\n", "Iteration 370/1000, Loss: nan\n", "Iteration 371/1000, Loss: nan\n", "Iteration 372/1000, Loss: nan\n", "Iteration 373/1000, Loss: nan\n", "Iteration 374/1000, Loss: nan\n", "Iteration 375/1000, Loss: nan\n", "Iteration 376/1000, Loss: nan\n", "Iteration 377/1000, Loss: nan\n", "Iteration 378/1000, Loss: nan\n", "Iteration 379/1000, Loss: nan\n", "Iteration 380/1000, Loss: nan\n", "Iteration 381/1000, Loss: nan\n", "Iteration 382/1000, Loss: nan\n", "Iteration 383/1000, Loss: nan\n", "Iteration 384/1000, Loss: nan\n", "Iteration 385/1000, Loss: nan\n", "Iteration 386/1000, Loss: nan\n", "Iteration 387/1000, Loss: nan\n", "Iteration 388/1000, Loss: nan\n", "Iteration 389/1000, Loss: nan\n", "Iteration 390/1000, Loss: nan\n", "Iteration 391/1000, Loss: nan\n", "Iteration 392/1000, Loss: nan\n", "Iteration 393/1000, Loss: nan\n", "Iteration 394/1000, Loss: nan\n", "Iteration 395/1000, Loss: nan\n", "Iteration 396/1000, Loss: nan\n", "Iteration 397/1000, Loss: nan\n", "Iteration 398/1000, Loss: nan\n", "Iteration 399/1000, Loss: nan\n", "Iteration 400/1000, Loss: nan\n", "Iteration 401/1000, Loss: nan\n", "Iteration 402/1000, Loss: nan\n", "Iteration 403/1000, Loss: nan\n", "Iteration 404/1000, Loss: nan\n", "Iteration 405/1000, Loss: nan\n", "Iteration 406/1000, Loss: nan\n", "Iteration 407/1000, Loss: nan\n", "Iteration 408/1000, Loss: nan\n", "Iteration 409/1000, Loss: nan\n", "Iteration 410/1000, Loss: nan\n", "Iteration 411/1000, Loss: nan\n", "Iteration 412/1000, Loss: nan\n", "Iteration 413/1000, Loss: nan\n", "Iteration 414/1000, Loss: nan\n", "Iteration 415/1000, Loss: nan\n", "Iteration 416/1000, Loss: nan\n", "Iteration 417/1000, Loss: nan\n", "Iteration 418/1000, Loss: nan\n", "Iteration 419/1000, Loss: nan\n", "Iteration 420/1000, Loss: nan\n", "Iteration 421/1000, Loss: nan\n", "Iteration 422/1000, Loss: nan\n", "Iteration 423/1000, Loss: nan\n", "Iteration 424/1000, Loss: nan\n", "Iteration 425/1000, Loss: nan\n", "Iteration 426/1000, Loss: nan\n", "Iteration 427/1000, Loss: nan\n", "Iteration 428/1000, Loss: nan\n", "Iteration 429/1000, Loss: nan\n", "Iteration 430/1000, Loss: nan\n", "Iteration 431/1000, Loss: nan\n", "Iteration 432/1000, Loss: nan\n", "Iteration 433/1000, Loss: nan\n", "Iteration 434/1000, Loss: nan\n", "Iteration 435/1000, Loss: nan\n", "Iteration 436/1000, Loss: nan\n", "Iteration 437/1000, Loss: nan\n", "Iteration 438/1000, Loss: nan\n", "Iteration 439/1000, Loss: nan\n", "Iteration 440/1000, Loss: nan\n", "Iteration 441/1000, Loss: nan\n", "Iteration 442/1000, Loss: nan\n", "Iteration 443/1000, Loss: nan\n", "Iteration 444/1000, Loss: nan\n", "Iteration 445/1000, Loss: nan\n", "Iteration 446/1000, Loss: nan\n", "Iteration 447/1000, Loss: nan\n", "Iteration 448/1000, Loss: nan\n", "Iteration 449/1000, Loss: nan\n", "Iteration 450/1000, Loss: nan\n", "Iteration 451/1000, Loss: nan\n", "Iteration 452/1000, Loss: nan\n", "Iteration 453/1000, Loss: nan\n", "Iteration 454/1000, Loss: nan\n", "Iteration 455/1000, Loss: nan\n", "Iteration 456/1000, Loss: nan\n", "Iteration 457/1000, Loss: nan\n", "Iteration 458/1000, Loss: nan\n", "Iteration 459/1000, Loss: nan\n", "Iteration 460/1000, Loss: nan\n", "Iteration 461/1000, Loss: nan\n", "Iteration 462/1000, Loss: nan\n", "Iteration 463/1000, Loss: nan\n", "Iteration 464/1000, Loss: nan\n", "Iteration 465/1000, Loss: nan\n", "Iteration 466/1000, Loss: nan\n", "Iteration 467/1000, Loss: nan\n", "Iteration 468/1000, Loss: nan\n", "Iteration 469/1000, Loss: nan\n", "Iteration 470/1000, Loss: nan\n", "Iteration 471/1000, Loss: nan\n", "Iteration 472/1000, Loss: nan\n", "Iteration 473/1000, Loss: nan\n", "Iteration 474/1000, Loss: nan\n", "Iteration 475/1000, Loss: nan\n", "Iteration 476/1000, Loss: nan\n", "Iteration 477/1000, Loss: nan\n", "Iteration 478/1000, Loss: nan\n", "Iteration 479/1000, Loss: nan\n", "Iteration 480/1000, Loss: nan\n", "Iteration 481/1000, Loss: nan\n", "Iteration 482/1000, Loss: nan\n", "Iteration 483/1000, Loss: nan\n", "Iteration 484/1000, Loss: nan\n", "Iteration 485/1000, Loss: nan\n", "Iteration 486/1000, Loss: nan\n", "Iteration 487/1000, Loss: nan\n", "Iteration 488/1000, Loss: nan\n", "Iteration 489/1000, Loss: nan\n", "Iteration 490/1000, Loss: nan\n", "Iteration 491/1000, Loss: nan\n", "Iteration 492/1000, Loss: nan\n", "Iteration 493/1000, Loss: nan\n", "Iteration 494/1000, Loss: nan\n", "Iteration 495/1000, Loss: nan\n", "Iteration 496/1000, Loss: nan\n", "Iteration 497/1000, Loss: nan\n", "Iteration 498/1000, Loss: nan\n", "Iteration 499/1000, Loss: nan\n", "Iteration 500/1000, Loss: nan\n", "Iteration 501/1000, Loss: nan\n", "Iteration 502/1000, Loss: nan\n", "Iteration 503/1000, Loss: nan\n", "Iteration 504/1000, Loss: nan\n", "Iteration 505/1000, Loss: nan\n", "Iteration 506/1000, Loss: nan\n", "Iteration 507/1000, Loss: nan\n", "Iteration 508/1000, Loss: nan\n", "Iteration 509/1000, Loss: nan\n", "Iteration 510/1000, Loss: nan\n", "Iteration 511/1000, Loss: nan\n", "Iteration 512/1000, Loss: nan\n", "Iteration 513/1000, Loss: nan\n", "Iteration 514/1000, Loss: nan\n", "Iteration 515/1000, Loss: nan\n", "Iteration 516/1000, Loss: nan\n", "Iteration 517/1000, Loss: nan\n", "Iteration 518/1000, Loss: nan\n", "Iteration 519/1000, Loss: nan\n", "Iteration 520/1000, Loss: nan\n", "Iteration 521/1000, Loss: nan\n", "Iteration 522/1000, Loss: nan\n", "Iteration 523/1000, Loss: nan\n", "Iteration 524/1000, Loss: nan\n", "Iteration 525/1000, Loss: nan\n", "Iteration 526/1000, Loss: nan\n", "Iteration 527/1000, Loss: nan\n", "Iteration 528/1000, Loss: nan\n", "Iteration 529/1000, Loss: nan\n", "Iteration 530/1000, Loss: nan\n", "Iteration 531/1000, Loss: nan\n", "Iteration 532/1000, Loss: nan\n", "Iteration 533/1000, Loss: nan\n", "Iteration 534/1000, Loss: nan\n", "Iteration 535/1000, Loss: nan\n", "Iteration 536/1000, Loss: nan\n", "Iteration 537/1000, Loss: nan\n", "Iteration 538/1000, Loss: nan\n", "Iteration 539/1000, Loss: nan\n", "Iteration 540/1000, Loss: nan\n", "Iteration 541/1000, Loss: nan\n", "Iteration 542/1000, Loss: nan\n", "Iteration 543/1000, Loss: nan\n", "Iteration 544/1000, Loss: nan\n", "Iteration 545/1000, Loss: nan\n", "Iteration 546/1000, Loss: nan\n", "Iteration 547/1000, Loss: nan\n", "Iteration 548/1000, Loss: nan\n", "Iteration 549/1000, Loss: nan\n", "Iteration 550/1000, Loss: nan\n", "Iteration 551/1000, Loss: nan\n", "Iteration 552/1000, Loss: nan\n", "Iteration 553/1000, Loss: nan\n", "Iteration 554/1000, Loss: nan\n", "Iteration 555/1000, Loss: nan\n", "Iteration 556/1000, Loss: nan\n", "Iteration 557/1000, Loss: nan\n", "Iteration 558/1000, Loss: nan\n", "Iteration 559/1000, Loss: nan\n", "Iteration 560/1000, Loss: nan\n", "Iteration 561/1000, Loss: nan\n", "Iteration 562/1000, Loss: nan\n", "Iteration 563/1000, Loss: nan\n", "Iteration 564/1000, Loss: nan\n", "Iteration 565/1000, Loss: nan\n", "Iteration 566/1000, Loss: nan\n", "Iteration 567/1000, Loss: nan\n", "Iteration 568/1000, Loss: nan\n", "Iteration 569/1000, Loss: nan\n", "Iteration 570/1000, Loss: nan\n", "Iteration 571/1000, Loss: nan\n", "Iteration 572/1000, Loss: nan\n", "Iteration 573/1000, Loss: nan\n", "Iteration 574/1000, Loss: nan\n", "Iteration 575/1000, Loss: nan\n", "Iteration 576/1000, Loss: nan\n", "Iteration 577/1000, Loss: nan\n", "Iteration 578/1000, Loss: nan\n", "Iteration 579/1000, Loss: nan\n", "Iteration 580/1000, Loss: nan\n", "Iteration 581/1000, Loss: nan\n", "Iteration 582/1000, Loss: nan\n", "Iteration 583/1000, Loss: nan\n", "Iteration 584/1000, Loss: nan\n", "Iteration 585/1000, Loss: nan\n", "Iteration 586/1000, Loss: nan\n", "Iteration 587/1000, Loss: nan\n", "Iteration 588/1000, Loss: nan\n", "Iteration 589/1000, Loss: nan\n", "Iteration 590/1000, Loss: nan\n", "Iteration 591/1000, Loss: nan\n", "Iteration 592/1000, Loss: nan\n", "Iteration 593/1000, Loss: nan\n", "Iteration 594/1000, Loss: nan\n", "Iteration 595/1000, Loss: nan\n", "Iteration 596/1000, Loss: nan\n", "Iteration 597/1000, Loss: nan\n", "Iteration 598/1000, Loss: nan\n", "Iteration 599/1000, Loss: nan\n", "Iteration 600/1000, Loss: nan\n", "Iteration 601/1000, Loss: nan\n", "Iteration 602/1000, Loss: nan\n", "Iteration 603/1000, Loss: nan\n", "Iteration 604/1000, Loss: nan\n", "Iteration 605/1000, Loss: nan\n", "Iteration 606/1000, Loss: nan\n", "Iteration 607/1000, Loss: nan\n", "Iteration 608/1000, Loss: nan\n", "Iteration 609/1000, Loss: nan\n", "Iteration 610/1000, Loss: nan\n", "Iteration 611/1000, Loss: nan\n", "Iteration 612/1000, Loss: nan\n", "Iteration 613/1000, Loss: nan\n", "Iteration 614/1000, Loss: nan\n", "Iteration 615/1000, Loss: nan\n", "Iteration 616/1000, Loss: nan\n", "Iteration 617/1000, Loss: nan\n", "Iteration 618/1000, Loss: nan\n", "Iteration 619/1000, Loss: nan\n", "Iteration 620/1000, Loss: nan\n", "Iteration 621/1000, Loss: nan\n", "Iteration 622/1000, Loss: nan\n", "Iteration 623/1000, Loss: nan\n", "Iteration 624/1000, Loss: nan\n", "Iteration 625/1000, Loss: nan\n", "Iteration 626/1000, Loss: nan\n", "Iteration 627/1000, Loss: nan\n", "Iteration 628/1000, Loss: nan\n", "Iteration 629/1000, Loss: nan\n", "Iteration 630/1000, Loss: nan\n", "Iteration 631/1000, Loss: nan\n", "Iteration 632/1000, Loss: nan\n", "Iteration 633/1000, Loss: nan\n", "Iteration 634/1000, Loss: nan\n", "Iteration 635/1000, Loss: nan\n", "Iteration 636/1000, Loss: nan\n", "Iteration 637/1000, Loss: nan\n", "Iteration 638/1000, Loss: nan\n", "Iteration 639/1000, Loss: nan\n", "Iteration 640/1000, Loss: nan\n", "Iteration 641/1000, Loss: nan\n", "Iteration 642/1000, Loss: nan\n", "Iteration 643/1000, Loss: nan\n", "Iteration 644/1000, Loss: nan\n", "Iteration 645/1000, Loss: nan\n", "Iteration 646/1000, Loss: nan\n", "Iteration 647/1000, Loss: nan\n", "Iteration 648/1000, Loss: nan\n", "Iteration 649/1000, Loss: nan\n", "Iteration 650/1000, Loss: nan\n", "Iteration 651/1000, Loss: nan\n", "Iteration 652/1000, Loss: nan\n", "Iteration 653/1000, Loss: nan\n", "Iteration 654/1000, Loss: nan\n", "Iteration 655/1000, Loss: nan\n", "Iteration 656/1000, Loss: nan\n", "Iteration 657/1000, Loss: nan\n", "Iteration 658/1000, Loss: nan\n", "Iteration 659/1000, Loss: nan\n", "Iteration 660/1000, Loss: nan\n", "Iteration 661/1000, Loss: nan\n", "Iteration 662/1000, Loss: nan\n", "Iteration 663/1000, Loss: nan\n", "Iteration 664/1000, Loss: nan\n", "Iteration 665/1000, Loss: nan\n", "Iteration 666/1000, Loss: nan\n", "Iteration 667/1000, Loss: nan\n", "Iteration 668/1000, Loss: nan\n", "Iteration 669/1000, Loss: nan\n", "Iteration 670/1000, Loss: nan\n", "Iteration 671/1000, Loss: nan\n", "Iteration 672/1000, Loss: nan\n", "Iteration 673/1000, Loss: nan\n", "Iteration 674/1000, Loss: nan\n", "Iteration 675/1000, Loss: nan\n", "Iteration 676/1000, Loss: nan\n", "Iteration 677/1000, Loss: nan\n", "Iteration 678/1000, Loss: nan\n", "Iteration 679/1000, Loss: nan\n", "Iteration 680/1000, Loss: nan\n", "Iteration 681/1000, Loss: nan\n", "Iteration 682/1000, Loss: nan\n", "Iteration 683/1000, Loss: nan\n", "Iteration 684/1000, Loss: nan\n", "Iteration 685/1000, Loss: nan\n", "Iteration 686/1000, Loss: nan\n", "Iteration 687/1000, Loss: nan\n", "Iteration 688/1000, Loss: nan\n", "Iteration 689/1000, Loss: nan\n", "Iteration 690/1000, Loss: nan\n", "Iteration 691/1000, Loss: nan\n", "Iteration 692/1000, Loss: nan\n", "Iteration 693/1000, Loss: nan\n", "Iteration 694/1000, Loss: nan\n", "Iteration 695/1000, Loss: nan\n", "Iteration 696/1000, Loss: nan\n", "Iteration 697/1000, Loss: nan\n", "Iteration 698/1000, Loss: nan\n", "Iteration 699/1000, Loss: nan\n", "Iteration 700/1000, Loss: nan\n", "Iteration 701/1000, Loss: nan\n", "Iteration 702/1000, Loss: nan\n", "Iteration 703/1000, Loss: nan\n", "Iteration 704/1000, Loss: nan\n", "Iteration 705/1000, Loss: nan\n", "Iteration 706/1000, Loss: nan\n", "Iteration 707/1000, Loss: nan\n", "Iteration 708/1000, Loss: nan\n", "Iteration 709/1000, Loss: nan\n", "Iteration 710/1000, Loss: nan\n", "Iteration 711/1000, Loss: nan\n", "Iteration 712/1000, Loss: nan\n", "Iteration 713/1000, Loss: nan\n", "Iteration 714/1000, Loss: nan\n", "Iteration 715/1000, Loss: nan\n", "Iteration 716/1000, Loss: nan\n", "Iteration 717/1000, Loss: nan\n", "Iteration 718/1000, Loss: nan\n", "Iteration 719/1000, Loss: nan\n", "Iteration 720/1000, Loss: nan\n", "Iteration 721/1000, Loss: nan\n", "Iteration 722/1000, Loss: nan\n", "Iteration 723/1000, Loss: nan\n", "Iteration 724/1000, Loss: nan\n", "Iteration 725/1000, Loss: nan\n", "Iteration 726/1000, Loss: nan\n", "Iteration 727/1000, Loss: nan\n", "Iteration 728/1000, Loss: nan\n", "Iteration 729/1000, Loss: nan\n", "Iteration 730/1000, Loss: nan\n", "Iteration 731/1000, Loss: nan\n", "Iteration 732/1000, Loss: nan\n", "Iteration 733/1000, Loss: nan\n", "Iteration 734/1000, Loss: nan\n", "Iteration 735/1000, Loss: nan\n", "Iteration 736/1000, Loss: nan\n", "Iteration 737/1000, Loss: nan\n", "Iteration 738/1000, Loss: nan\n", "Iteration 739/1000, Loss: nan\n", "Iteration 740/1000, Loss: nan\n", "Iteration 741/1000, Loss: nan\n", "Iteration 742/1000, Loss: nan\n", "Iteration 743/1000, Loss: nan\n", "Iteration 744/1000, Loss: nan\n", "Iteration 745/1000, Loss: nan\n", "Iteration 746/1000, Loss: nan\n", "Iteration 747/1000, Loss: nan\n", "Iteration 748/1000, Loss: nan\n", "Iteration 749/1000, Loss: nan\n", "Iteration 750/1000, Loss: nan\n", "Iteration 751/1000, Loss: nan\n", "Iteration 752/1000, Loss: nan\n", "Iteration 753/1000, Loss: nan\n", "Iteration 754/1000, Loss: nan\n", "Iteration 755/1000, Loss: nan\n", "Iteration 756/1000, Loss: nan\n", "Iteration 757/1000, Loss: nan\n", "Iteration 758/1000, Loss: nan\n", "Iteration 759/1000, Loss: nan\n", "Iteration 760/1000, Loss: nan\n", "Iteration 761/1000, Loss: nan\n", "Iteration 762/1000, Loss: nan\n", "Iteration 763/1000, Loss: nan\n", "Iteration 764/1000, Loss: nan\n", "Iteration 765/1000, Loss: nan\n", "Iteration 766/1000, Loss: nan\n", "Iteration 767/1000, Loss: nan\n", "Iteration 768/1000, Loss: nan\n", "Iteration 769/1000, Loss: nan\n", "Iteration 770/1000, Loss: nan\n", "Iteration 771/1000, Loss: nan\n", "Iteration 772/1000, Loss: nan\n", "Iteration 773/1000, Loss: nan\n", "Iteration 774/1000, Loss: nan\n", "Iteration 775/1000, Loss: nan\n", "Iteration 776/1000, Loss: nan\n", "Iteration 777/1000, Loss: nan\n", "Iteration 778/1000, Loss: nan\n", "Iteration 779/1000, Loss: nan\n", "Iteration 780/1000, Loss: nan\n", "Iteration 781/1000, Loss: nan\n", "Iteration 782/1000, Loss: nan\n", "Iteration 783/1000, Loss: nan\n", "Iteration 784/1000, Loss: nan\n", "Iteration 785/1000, Loss: nan\n", "Iteration 786/1000, Loss: nan\n", "Iteration 787/1000, Loss: nan\n", "Iteration 788/1000, Loss: nan\n", "Iteration 789/1000, Loss: nan\n", "Iteration 790/1000, Loss: nan\n", "Iteration 791/1000, Loss: nan\n", "Iteration 792/1000, Loss: nan\n", "Iteration 793/1000, Loss: nan\n", "Iteration 794/1000, Loss: nan\n", "Iteration 795/1000, Loss: nan\n", "Iteration 796/1000, Loss: nan\n", "Iteration 797/1000, Loss: nan\n", "Iteration 798/1000, Loss: nan\n", "Iteration 799/1000, Loss: nan\n", "Iteration 800/1000, Loss: nan\n", "Iteration 801/1000, Loss: nan\n", "Iteration 802/1000, Loss: nan\n", "Iteration 803/1000, Loss: nan\n", "Iteration 804/1000, Loss: nan\n", "Iteration 805/1000, Loss: nan\n", "Iteration 806/1000, Loss: nan\n", "Iteration 807/1000, Loss: nan\n", "Iteration 808/1000, Loss: nan\n", "Iteration 809/1000, Loss: nan\n", "Iteration 810/1000, Loss: nan\n", "Iteration 811/1000, Loss: nan\n", "Iteration 812/1000, Loss: nan\n", "Iteration 813/1000, Loss: nan\n", "Iteration 814/1000, Loss: nan\n", "Iteration 815/1000, Loss: nan\n", "Iteration 816/1000, Loss: nan\n", "Iteration 817/1000, Loss: nan\n", "Iteration 818/1000, Loss: nan\n", "Iteration 819/1000, Loss: nan\n", "Iteration 820/1000, Loss: nan\n", "Iteration 821/1000, Loss: nan\n", "Iteration 822/1000, Loss: nan\n", "Iteration 823/1000, Loss: nan\n", "Iteration 824/1000, Loss: nan\n", "Iteration 825/1000, Loss: nan\n", "Iteration 826/1000, Loss: nan\n", "Iteration 827/1000, Loss: nan\n", "Iteration 828/1000, Loss: nan\n", "Iteration 829/1000, Loss: nan\n", "Iteration 830/1000, Loss: nan\n", "Iteration 831/1000, Loss: nan\n", "Iteration 832/1000, Loss: nan\n", "Iteration 833/1000, Loss: nan\n", "Iteration 834/1000, Loss: nan\n", "Iteration 835/1000, Loss: nan\n", "Iteration 836/1000, Loss: nan\n", "Iteration 837/1000, Loss: nan\n", "Iteration 838/1000, Loss: nan\n", "Iteration 839/1000, Loss: nan\n", "Iteration 840/1000, Loss: nan\n", "Iteration 841/1000, Loss: nan\n", "Iteration 842/1000, Loss: nan\n", "Iteration 843/1000, Loss: nan\n", "Iteration 844/1000, Loss: nan\n", "Iteration 845/1000, Loss: nan\n", "Iteration 846/1000, Loss: nan\n", "Iteration 847/1000, Loss: nan\n", "Iteration 848/1000, Loss: nan\n", "Iteration 849/1000, Loss: nan\n", "Iteration 850/1000, Loss: nan\n", "Iteration 851/1000, Loss: nan\n", "Iteration 852/1000, Loss: nan\n", "Iteration 853/1000, Loss: nan\n", "Iteration 854/1000, Loss: nan\n", "Iteration 855/1000, Loss: nan\n", "Iteration 856/1000, Loss: nan\n", "Iteration 857/1000, Loss: nan\n", "Iteration 858/1000, Loss: nan\n", "Iteration 859/1000, Loss: nan\n", "Iteration 860/1000, Loss: nan\n", "Iteration 861/1000, Loss: nan\n", "Iteration 862/1000, Loss: nan\n", "Iteration 863/1000, Loss: nan\n", "Iteration 864/1000, Loss: nan\n", "Iteration 865/1000, Loss: nan\n", "Iteration 866/1000, Loss: nan\n", "Iteration 867/1000, Loss: nan\n", "Iteration 868/1000, Loss: nan\n", "Iteration 869/1000, Loss: nan\n", "Iteration 870/1000, Loss: nan\n", "Iteration 871/1000, Loss: nan\n", "Iteration 872/1000, Loss: nan\n", "Iteration 873/1000, Loss: nan\n", "Iteration 874/1000, Loss: nan\n", "Iteration 875/1000, Loss: nan\n", "Iteration 876/1000, Loss: nan\n", "Iteration 877/1000, Loss: nan\n", "Iteration 878/1000, Loss: nan\n", "Iteration 879/1000, Loss: nan\n", "Iteration 880/1000, Loss: nan\n", "Iteration 881/1000, Loss: nan\n", "Iteration 882/1000, Loss: nan\n", "Iteration 883/1000, Loss: nan\n", "Iteration 884/1000, Loss: nan\n", "Iteration 885/1000, Loss: nan\n", "Iteration 886/1000, Loss: nan\n", "Iteration 887/1000, Loss: nan\n", "Iteration 888/1000, Loss: nan\n", "Iteration 889/1000, Loss: nan\n", "Iteration 890/1000, Loss: nan\n", "Iteration 891/1000, Loss: nan\n", "Iteration 892/1000, Loss: nan\n", "Iteration 893/1000, Loss: nan\n", "Iteration 894/1000, Loss: nan\n", "Iteration 895/1000, Loss: nan\n", "Iteration 896/1000, Loss: nan\n", "Iteration 897/1000, Loss: nan\n", "Iteration 898/1000, Loss: nan\n", "Iteration 899/1000, Loss: nan\n", "Iteration 900/1000, Loss: nan\n", "Iteration 901/1000, Loss: nan\n", "Iteration 902/1000, Loss: nan\n", "Iteration 903/1000, Loss: nan\n", "Iteration 904/1000, Loss: nan\n", "Iteration 905/1000, Loss: nan\n", "Iteration 906/1000, Loss: nan\n", "Iteration 907/1000, Loss: nan\n", "Iteration 908/1000, Loss: nan\n", "Iteration 909/1000, Loss: nan\n", "Iteration 910/1000, Loss: nan\n", "Iteration 911/1000, Loss: nan\n", "Iteration 912/1000, Loss: nan\n", "Iteration 913/1000, Loss: nan\n", "Iteration 914/1000, Loss: nan\n", "Iteration 915/1000, Loss: nan\n", "Iteration 916/1000, Loss: nan\n", "Iteration 917/1000, Loss: nan\n", "Iteration 918/1000, Loss: nan\n", "Iteration 919/1000, Loss: nan\n", "Iteration 920/1000, Loss: nan\n", "Iteration 921/1000, Loss: nan\n", "Iteration 922/1000, Loss: nan\n", "Iteration 923/1000, Loss: nan\n", "Iteration 924/1000, Loss: nan\n", "Iteration 925/1000, Loss: nan\n", "Iteration 926/1000, Loss: nan\n", "Iteration 927/1000, Loss: nan\n", "Iteration 928/1000, Loss: nan\n", "Iteration 929/1000, Loss: nan\n", "Iteration 930/1000, Loss: nan\n", "Iteration 931/1000, Loss: nan\n", "Iteration 932/1000, Loss: nan\n", "Iteration 933/1000, Loss: nan\n", "Iteration 934/1000, Loss: nan\n", "Iteration 935/1000, Loss: nan\n", "Iteration 936/1000, Loss: nan\n", "Iteration 937/1000, Loss: nan\n", "Iteration 938/1000, Loss: nan\n", "Iteration 939/1000, Loss: nan\n", "Iteration 940/1000, Loss: nan\n", "Iteration 941/1000, Loss: nan\n", "Iteration 942/1000, Loss: nan\n", "Iteration 943/1000, Loss: nan\n", "Iteration 944/1000, Loss: nan\n", "Iteration 945/1000, Loss: nan\n", "Iteration 946/1000, Loss: nan\n", "Iteration 947/1000, Loss: nan\n", "Iteration 948/1000, Loss: nan\n", "Iteration 949/1000, Loss: nan\n", "Iteration 950/1000, Loss: nan\n", "Iteration 951/1000, Loss: nan\n", "Iteration 952/1000, Loss: nan\n", "Iteration 953/1000, Loss: nan\n", "Iteration 954/1000, Loss: nan\n", "Iteration 955/1000, Loss: nan\n", "Iteration 956/1000, Loss: nan\n", "Iteration 957/1000, Loss: nan\n", "Iteration 958/1000, Loss: nan\n", "Iteration 959/1000, Loss: nan\n", "Iteration 960/1000, Loss: nan\n", "Iteration 961/1000, Loss: nan\n", "Iteration 962/1000, Loss: nan\n", "Iteration 963/1000, Loss: nan\n", "Iteration 964/1000, Loss: nan\n", "Iteration 965/1000, Loss: nan\n", "Iteration 966/1000, Loss: nan\n", "Iteration 967/1000, Loss: nan\n", "Iteration 968/1000, Loss: nan\n", "Iteration 969/1000, Loss: nan\n", "Iteration 970/1000, Loss: nan\n", "Iteration 971/1000, Loss: nan\n", "Iteration 972/1000, Loss: nan\n", "Iteration 973/1000, Loss: nan\n", "Iteration 974/1000, Loss: nan\n", "Iteration 975/1000, Loss: nan\n", "Iteration 976/1000, Loss: nan\n", "Iteration 977/1000, Loss: nan\n", "Iteration 978/1000, Loss: nan\n", "Iteration 979/1000, Loss: nan\n", "Iteration 980/1000, Loss: nan\n", "Iteration 981/1000, Loss: nan\n", "Iteration 982/1000, Loss: nan\n", "Iteration 983/1000, Loss: nan\n", "Iteration 984/1000, Loss: nan\n", "Iteration 985/1000, Loss: nan\n", "Iteration 986/1000, Loss: nan\n", "Iteration 987/1000, Loss: nan\n", "Iteration 988/1000, Loss: nan\n", "Iteration 989/1000, Loss: nan\n", "Iteration 990/1000, Loss: nan\n", "Iteration 991/1000, Loss: nan\n", "Iteration 992/1000, Loss: nan\n", "Iteration 993/1000, Loss: nan\n", "Iteration 994/1000, Loss: nan\n", "Iteration 995/1000, Loss: nan\n", "Iteration 996/1000, Loss: nan\n", "Iteration 997/1000, Loss: nan\n", "Iteration 998/1000, Loss: nan\n", "Iteration 999/1000, Loss: nan\n", "Iteration 1000/1000, Loss: nan\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "c:\\Users\\pthomas\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\matplotlib\\ticker.py:2392: RuntimeWarning: overflow encountered in power\n", " ticklocs = b ** decades\n" ] }, { "ename": "OverflowError", "evalue": "cannot convert float infinity to integer", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mOverflowError\u001b[0m Traceback (most recent call last)", "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\IPython\\core\\formatters.py:340\u001b[0m, in \u001b[0;36mBaseFormatter.__call__\u001b[1;34m(self, obj)\u001b[0m\n\u001b[0;32m 338\u001b[0m \u001b[38;5;28;01mpass\u001b[39;00m\n\u001b[0;32m 339\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m--> 340\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mprinter\u001b[49m\u001b[43m(\u001b[49m\u001b[43mobj\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 341\u001b[0m \u001b[38;5;66;03m# Finally look for special method names\u001b[39;00m\n\u001b[0;32m 342\u001b[0m method \u001b[38;5;241m=\u001b[39m get_real_method(obj, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mprint_method)\n", "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\IPython\\core\\pylabtools.py:152\u001b[0m, in \u001b[0;36mprint_figure\u001b[1;34m(fig, fmt, bbox_inches, base64, **kwargs)\u001b[0m\n\u001b[0;32m 149\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mmatplotlib\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mbackend_bases\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m FigureCanvasBase\n\u001b[0;32m 150\u001b[0m FigureCanvasBase(fig)\n\u001b[1;32m--> 152\u001b[0m \u001b[43mfig\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcanvas\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mprint_figure\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbytes_io\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 153\u001b[0m data \u001b[38;5;241m=\u001b[39m bytes_io\u001b[38;5;241m.\u001b[39mgetvalue()\n\u001b[0;32m 154\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m fmt \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124msvg\u001b[39m\u001b[38;5;124m'\u001b[39m:\n", "File \u001b[1;32mc:\\Users\\pthomas\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\matplotlib\\backend_bases.py:2158\u001b[0m, in \u001b[0;36mFigureCanvasBase.print_figure\u001b[1;34m(self, filename, dpi, facecolor, edgecolor, orientation, format, bbox_inches, pad_inches, bbox_extra_artists, backend, **kwargs)\u001b[0m\n\u001b[0;32m 2155\u001b[0m \u001b[38;5;66;03m# we do this instead of `self.figure.draw_without_rendering`\u001b[39;00m\n\u001b[0;32m 2156\u001b[0m \u001b[38;5;66;03m# so that we can inject the orientation\u001b[39;00m\n\u001b[0;32m 2157\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28mgetattr\u001b[39m(renderer, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m_draw_disabled\u001b[39m\u001b[38;5;124m\"\u001b[39m, nullcontext)():\n\u001b[1;32m-> 2158\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfigure\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 2159\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m bbox_inches:\n\u001b[0;32m 2160\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m bbox_inches \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtight\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n", "File \u001b[1;32mc:\\Users\\pthomas\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\matplotlib\\artist.py:95\u001b[0m, in \u001b[0;36m_finalize_rasterization..draw_wrapper\u001b[1;34m(artist, renderer, *args, **kwargs)\u001b[0m\n\u001b[0;32m 93\u001b[0m \u001b[38;5;129m@wraps\u001b[39m(draw)\n\u001b[0;32m 94\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mdraw_wrapper\u001b[39m(artist, renderer, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m---> 95\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43martist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 96\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m renderer\u001b[38;5;241m.\u001b[39m_rasterizing:\n\u001b[0;32m 97\u001b[0m renderer\u001b[38;5;241m.\u001b[39mstop_rasterizing()\n", "File \u001b[1;32mc:\\Users\\pthomas\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\matplotlib\\artist.py:72\u001b[0m, in \u001b[0;36mallow_rasterization..draw_wrapper\u001b[1;34m(artist, renderer)\u001b[0m\n\u001b[0;32m 69\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m 70\u001b[0m renderer\u001b[38;5;241m.\u001b[39mstart_filter()\n\u001b[1;32m---> 72\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43martist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 73\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[0;32m 74\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n", "File \u001b[1;32mc:\\Users\\pthomas\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\matplotlib\\figure.py:3154\u001b[0m, in \u001b[0;36mFigure.draw\u001b[1;34m(self, renderer)\u001b[0m\n\u001b[0;32m 3151\u001b[0m \u001b[38;5;66;03m# ValueError can occur when resizing a window.\u001b[39;00m\n\u001b[0;32m 3153\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpatch\u001b[38;5;241m.\u001b[39mdraw(renderer)\n\u001b[1;32m-> 3154\u001b[0m \u001b[43mmimage\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_draw_list_compositing_images\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 3155\u001b[0m \u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43martists\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msuppressComposite\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 3157\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m sfig \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msubfigs:\n\u001b[0;32m 3158\u001b[0m sfig\u001b[38;5;241m.\u001b[39mdraw(renderer)\n", "File \u001b[1;32mc:\\Users\\pthomas\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\matplotlib\\image.py:132\u001b[0m, in \u001b[0;36m_draw_list_compositing_images\u001b[1;34m(renderer, parent, artists, suppress_composite)\u001b[0m\n\u001b[0;32m 130\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m not_composite \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m has_images:\n\u001b[0;32m 131\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m artists:\n\u001b[1;32m--> 132\u001b[0m \u001b[43ma\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 133\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 134\u001b[0m \u001b[38;5;66;03m# Composite any adjacent images together\u001b[39;00m\n\u001b[0;32m 135\u001b[0m image_group \u001b[38;5;241m=\u001b[39m []\n", "File \u001b[1;32mc:\\Users\\pthomas\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\matplotlib\\artist.py:72\u001b[0m, in \u001b[0;36mallow_rasterization..draw_wrapper\u001b[1;34m(artist, renderer)\u001b[0m\n\u001b[0;32m 69\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m 70\u001b[0m renderer\u001b[38;5;241m.\u001b[39mstart_filter()\n\u001b[1;32m---> 72\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43martist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 73\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[0;32m 74\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n", "File \u001b[1;32mc:\\Users\\pthomas\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\matplotlib\\axes\\_base.py:3034\u001b[0m, in \u001b[0;36m_AxesBase.draw\u001b[1;34m(self, renderer)\u001b[0m\n\u001b[0;32m 3031\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m spine \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mspines\u001b[38;5;241m.\u001b[39mvalues():\n\u001b[0;32m 3032\u001b[0m artists\u001b[38;5;241m.\u001b[39mremove(spine)\n\u001b[1;32m-> 3034\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_update_title_position\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 3036\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39maxison:\n\u001b[0;32m 3037\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m _axis \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_axis_map\u001b[38;5;241m.\u001b[39mvalues():\n", "File \u001b[1;32mc:\\Users\\pthomas\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\matplotlib\\axes\\_base.py:2978\u001b[0m, in \u001b[0;36m_AxesBase._update_title_position\u001b[1;34m(self, renderer)\u001b[0m\n\u001b[0;32m 2976\u001b[0m top \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mmax\u001b[39m(top, bb\u001b[38;5;241m.\u001b[39mymax)\n\u001b[0;32m 2977\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m title\u001b[38;5;241m.\u001b[39mget_text():\n\u001b[1;32m-> 2978\u001b[0m \u001b[43max\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43myaxis\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_tightbbox\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;66;03m# update offsetText\u001b[39;00m\n\u001b[0;32m 2979\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m ax\u001b[38;5;241m.\u001b[39myaxis\u001b[38;5;241m.\u001b[39moffsetText\u001b[38;5;241m.\u001b[39mget_text():\n\u001b[0;32m 2980\u001b[0m bb \u001b[38;5;241m=\u001b[39m ax\u001b[38;5;241m.\u001b[39myaxis\u001b[38;5;241m.\u001b[39moffsetText\u001b[38;5;241m.\u001b[39mget_tightbbox(renderer)\n", "File \u001b[1;32mc:\\Users\\pthomas\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\matplotlib\\axis.py:1334\u001b[0m, in \u001b[0;36mAxis.get_tightbbox\u001b[1;34m(self, renderer, for_layout_only)\u001b[0m\n\u001b[0;32m 1332\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m renderer \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m 1333\u001b[0m renderer \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfigure\u001b[38;5;241m.\u001b[39m_get_renderer()\n\u001b[1;32m-> 1334\u001b[0m ticks_to_draw \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_update_ticks\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1336\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_update_label_position(renderer)\n\u001b[0;32m 1338\u001b[0m \u001b[38;5;66;03m# go back to just this axis's tick labels\u001b[39;00m\n", "File \u001b[1;32mc:\\Users\\pthomas\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\matplotlib\\axis.py:1276\u001b[0m, in \u001b[0;36mAxis._update_ticks\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 1271\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m 1272\u001b[0m \u001b[38;5;124;03mUpdate ticks (position and labels) using the current data interval of\u001b[39;00m\n\u001b[0;32m 1273\u001b[0m \u001b[38;5;124;03mthe axes. Return the list of ticks that will be drawn.\u001b[39;00m\n\u001b[0;32m 1274\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m 1275\u001b[0m major_locs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mget_majorticklocs()\n\u001b[1;32m-> 1276\u001b[0m major_labels \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmajor\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mformatter\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mformat_ticks\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmajor_locs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1277\u001b[0m major_ticks \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mget_major_ticks(\u001b[38;5;28mlen\u001b[39m(major_locs))\n\u001b[0;32m 1278\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m tick, loc, label \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(major_ticks, major_locs, major_labels):\n", "File \u001b[1;32mc:\\Users\\pthomas\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\matplotlib\\ticker.py:216\u001b[0m, in \u001b[0;36mFormatter.format_ticks\u001b[1;34m(self, values)\u001b[0m\n\u001b[0;32m 214\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Return the tick labels for all the ticks at once.\"\"\"\u001b[39;00m\n\u001b[0;32m 215\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mset_locs(values)\n\u001b[1;32m--> 216\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m[\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mvalue\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvalue\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43menumerate\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mvalues\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m\n", "File \u001b[1;32mc:\\Users\\pthomas\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\matplotlib\\ticker.py:216\u001b[0m, in \u001b[0;36m\u001b[1;34m(.0)\u001b[0m\n\u001b[0;32m 214\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Return the tick labels for all the ticks at once.\"\"\"\u001b[39;00m\n\u001b[0;32m 215\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mset_locs(values)\n\u001b[1;32m--> 216\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m [\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mvalue\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m i, value \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(values)]\n", "File \u001b[1;32mc:\\Users\\pthomas\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\matplotlib\\ticker.py:1066\u001b[0m, in \u001b[0;36mLogFormatterMathtext.__call__\u001b[1;34m(self, x, pos)\u001b[0m\n\u001b[0;32m 1064\u001b[0m \u001b[38;5;66;03m# only label the decades\u001b[39;00m\n\u001b[0;32m 1065\u001b[0m fx \u001b[38;5;241m=\u001b[39m math\u001b[38;5;241m.\u001b[39mlog(x) \u001b[38;5;241m/\u001b[39m math\u001b[38;5;241m.\u001b[39mlog(b)\n\u001b[1;32m-> 1066\u001b[0m is_x_decade \u001b[38;5;241m=\u001b[39m \u001b[43m_is_close_to_int\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfx\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1067\u001b[0m exponent \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mround\u001b[39m(fx) \u001b[38;5;28;01mif\u001b[39;00m is_x_decade \u001b[38;5;28;01melse\u001b[39;00m np\u001b[38;5;241m.\u001b[39mfloor(fx)\n\u001b[0;32m 1068\u001b[0m coeff \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mround\u001b[39m(b \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m (fx \u001b[38;5;241m-\u001b[39m exponent))\n", "File \u001b[1;32mc:\\Users\\pthomas\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\matplotlib\\ticker.py:2239\u001b[0m, in \u001b[0;36m_is_close_to_int\u001b[1;34m(x)\u001b[0m\n\u001b[0;32m 2238\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_is_close_to_int\u001b[39m(x):\n\u001b[1;32m-> 2239\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m math\u001b[38;5;241m.\u001b[39misclose(x, \u001b[38;5;28mround\u001b[39m(x))\n", "\u001b[1;31mOverflowError\u001b[0m: cannot convert float infinity to integer" ] }, { "data": { "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Test MSE: nan\n", "Standard Error of MSE: nan\n" ] } ], "source": [ "alpha = 0.1\n", "run(alpha)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question**: What went wrong, and how can we fix it?" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.7" } }, "nbformat": 4, "nbformat_minor": 2 }